package com.irdstudio.efp.rule.service.facade;

import java.util.List;

import com.irdstudio.efp.rule.service.vo.TaxWithholdRemitCorpVO;

/**
 * Service Interface：代扣代缴单位信息服务 
 * @author ligm
 * @date 2019-04-29 
 */
public interface TaxWithholdRemitCorpService {
    
	/**
	 * 新增数据 
     * @param inTaxWithholdRemitCorpVo
	 * @return 
	 */
	public int insertTaxWithholdRemitCorp(TaxWithholdRemitCorpVO inTaxWithholdRemitCorpVo);

    /**
	 * 根据主键删除信息 
     * @param inTaxWithholdRemitCorpVo
	 * @return 
	 */
	public int deleteByPk(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);

    /**
	 * 根据主键更新信息 
     * @param inTaxWithholdRemitCorpVo
	 * @return 
	 */  
	public int updateByPk(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);

    /**
	 * 根据主键查询详情 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
	public TaxWithholdRemitCorpVO queryByPk(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);

    /**
	* 一级数据权限
     * @param taxWithholdRemitCorp
	 * @return 
	 */	
	public List<TaxWithholdRemitCorpVO> queryAllByLevelOne(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);
	
    /**
	 * 二级数据权限 
     * @param taxWithholdRemitCorp
	 * @return 
	 * @version 0.1
	 */
	public List<TaxWithholdRemitCorpVO> queryAllByLevelTwo(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);
	
    /**
	 * 三级数据权限 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
	public List<TaxWithholdRemitCorpVO> queryAllByLevelThree(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);
	
    /**
	 * 四级数据权限 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
    public List<TaxWithholdRemitCorpVO> queryAllByLevelFour(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);

    /**
	 * 五级数据权限
     * @param taxWithholdRemitCorp
	 * @return 
	 */
    public List<TaxWithholdRemitCorpVO> queryAllByLevelFive(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);
    
    /**
     * 需求编号：2019D0519<br/>
     * 问题编号：<br/>
     * 功能描述：使用授信流水号查询所有记录<br/>
     * 开发人员：周才顺<br/>
     * 创建时间：2019年5月27日 上午9:17:20<br/>
     * @author zhoucs1
     * @since  1.0 
     * @version 1.0
     * @param taxWithholdRemitCorpVo
     * @return
     */
    public List<TaxWithholdRemitCorpVO> queryAllByLmtApplySeq(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);
    /**
     * 根据授信流水号和代扣代缴单位纳税人识别号查询代扣代缴单位信息
     * 
     * @author weijj
     * @since 2019年5月29日 上午9:56:08
     * @version 1.0
     */
    public TaxWithholdRemitCorpVO queryTaxWithholdRemitCorpByCrdtAppFlowNoAndwthldngTaxpyNo(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);

    /**
     * 
     * TODO 用代扣代缴单位纳税人识别号查询代扣代缴单位名称<br>
     * @author wanglihua
     * @since 2019年7月1日 下午5:02:48
     * @date 2019年7月1日 下午5:02:48
     * @version 0.1
     */
	public TaxWithholdRemitCorpVO queryWthldngCorpNm(TaxWithholdRemitCorpVO taxWithholdRemitCorpVO);
	
	/**
	 * 需求编号：【2019D0519】（业务提的需求编号）
	 * 问题编号：【xxxxxxx】（若不是因为修复问题而新增该类，则留空）
	 * 开发人员：qiuyf
	 * 创建日期：2019年7月8日 上午10:56:17
	 * 功能描述：通过授信申请流水号获取最新一笔代扣代缴单位信息
	 */
	public TaxWithholdRemitCorpVO queryWthldngCorpNm(String crdtAppFlowNo);
    
}
